package com.example.toolproject.demo.mapper;

import com.example.toolproject.demo.domain.DataSearch;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName DataSearchMapper
 * @Description TODO
 * @Author lvyongwei
 * @Date 2020-06-19 13:25
 **/
@Mapper
public interface DataSearchMapper {

    /**
     * 插入数据信息
     * @param dataSearch
     * @return
     */
    public boolean insertData(DataSearch dataSearch);

    /**
     * 查询数据信息
     * @param name    数据标题名
     * @return
     */
    public DataSearch selectDataSearch(String name);


    /**
     * 根据type查询所有数据
     * @param type   类型
     * @return
     */
    public List<DataSearch> selectAllDataSearch(@Param("type") int type,@Param("userId") int userId);


    /**
     * 根据type  以及搜索条件模糊查询  所有数据
     * @param type     类型
     * @param message  搜索条件
     * @return
     */
    public List<DataSearch> selectAllDataSearchByMessage(@Param("type") int type,@Param("message") String message,@Param("userId") int userId);

    /**
     * 根据数据id查询详情信息
     * @param dataSearchId
     * @return
     */
    public DataSearch getDataSearchById(int dataSearchId);

    /**
     * 获取到自己引用的所有的数据资源
     * @return
     */
    public List<DataSearch> getSelfAllDataSearch(int userId);

    /**
     * 根据类型获取名称数据 简介数据
     * @param type
     * @return
     */
    public List<String> getDataSearch(int type);


    /**
     * 根据引用数据及分类，获取要分词的数据信息
     * @param userId
     * @param type
     * @return
     */
    public List<String> getDataSearch2(@Param("userId") int userId,@Param("type") int type);


    /**
     * 根据用户id和角色id获取文化资源id
     * @param roleId
     * @param userId
     * @return
     */
    public List<Long> getDataSearchIds(@Param("roleId")int roleId,@Param("userId")int userId);

    /**
     * 获取所有不是由教师管理员上传的文化资源id
     * @return
     */
    public List<Long> getDataSearchIds2();

    /**
     * 删除学生用户，游客用户导入的信息
     * @param ids
     * @return
     */
    public boolean deleteDataSearch(@Param("list") List<Long> ids);

}
